We shall say that an n-digit number is pandigital if it makes use of all the digits 1 to n exactly once; for example, the 5-digit number, 15234, is 1 through 5 pandigital.
The product 7254 is unusual, as the identity, 39 × 186 = 7254, containing multiplicand, multiplier, and product is 1 through 9 pandigital.
Find the sum of all products whose multiplicand/multiplier/product identity can be written as a 1 through 9 pandigital.
HINT: Some products can be obtained in more than one way so be sure to only include it once in your sum.
In [1]:
def distinct(s):
set_s = set(s)
return len(s) == len(set_s) and not ('0' in set_s)
pandigital = set()
for x in range(2, 1000):
sx = str(x)
if distinct(sx):
for y in range(x+1, 25000):
sy = str(y)
sz = str(x*y)
s = sx + sy + sz
if len(s) > 9:
break
if len(s) == 9 and distinct(s):
pandigital.add(x*y)
print(sum(pandigital))
In [ ]: